/**
 * @author
 * @createtime
 * @class ContractBorrowForm
 * @extends Ext.Window
 * @description ContractBorrow表单
 */
ContractBorrowForm = Ext.extend(Ext.Window, {
	//内嵌FormPanel
	formPanel : null,
	//构造函数
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		//必须先初始化组件
		this.initUIComponents();
		ContractBorrowForm.superclass.constructor.call(this, {
			id : 'ContractBorrowFormWin',
			layout : 'fit',
			items : this.formPanel,
			modal : true,
			height : 400,
			width : 700,
			maximizable : true,
			title : '[合同原件借用]详细信息',
			buttonAlign : 'center',
			buttons : this.buttons
		});
	},//end of the constructor
	//初始化组件
	initUIComponents : function() {
		this.formPanel = new Ext.FormPanel({
			layout : 'form',
			trackResetOnLoad : true,
			bodyStyle : 'padding:10px 10px 10px 10px',
			border : false,
			url : __ctxPath + '/admin/saveContractBorrow.do',
			id : 'ContractBorrowForm',
			defaults : {
				anchor : '98%,98%'
			},
			defaultType : 'textfield',
			items : [{
						name : 'contractBorrow.id',
						id : 'id',
						xtype : 'hidden',
						value : this.id == null ? '' : this.id
					}, {
						xtype : 'container',
						layout : 'column',
						height : 25,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '申请人：',
									columnWidth : .15
								}, {
									xtype : 'textfield',
									name : 'contractBorrowApplyUserName',
									id : 'contractBorrowApplyUserName',
									value : __currentUser,
									columnWidth : .3
								}, {
									xtype : "hidden",
									name : "contractBorrow.applyUser.userId",
									id : "contractBorrow.applyUser.userId",
									value : __currentUserId
								}, {
									text : '申请部门：',
									style : 'margin-left:10px;',
									columnWidth : .15
								}, {
									xtype : 'textfield',
									name : 'contractBorrowDeptName',
									id : 'contractBorrowDeptName',
									value : __currentUserDept,
									columnWidth : .3
								}, {
									xtype : "hidden",
									name : "contractBorrow.dept.depId",
									id : "contractBorrow.dept.depId",
									value : __currentUserDeptId
								}]
					}, {
						xtype : 'container',
						layout : 'column',
						height : 25,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '项目需求：',
									columnWidth : .15
								}, {
									xtype : 'combo',
									hiddenName : 'contractBorrow.proNeed',
									id : 'proNeed',
									mode : "local",
									editable : false,
									allowBlank : false,
									triggerAction : "all",
									columnWidth : .3,
									store : ['是', '否'],
									value : '是',
									listeners : {
										'select' : function(combo, record, index) {
											if (combo.getValue() == '是') {
												Ext.getCmp("contractBorrowProName").enable();
												Ext.getCmp("contractBorrowProName").allowBlank = false;
											} else {
												Ext.getCmp("contractBorrowProName").reset();
												Ext.getCmp("contractBorrowProName").disable();
												Ext.getCmp("contractBorrowProName").allowBlank = true;
												Ext.getCmp("contractBorrow.project.id").reset();
											}
										}
									}
								}, {
									text : '项目名称：',
									style : 'margin-left:10px;',
									columnWidth : .15
								}, {
									xtype : 'textfield',
									name : 'contractBorrowProName',
									id : 'contractBorrowProName',
									columnWidth : .3,
									allowBlank : false,
									emptyText : '请选择项目',
									listeners : {
										'focus' : function() {
											ProjectSelector.getView(function(proId, proName, proNo) {
												Ext.getCmp("contractBorrow.project.id").setValue(proId);
												Ext.getCmp("contractBorrowProName").setValue(proName);
											}, true).show();
										}
									}
								}, {
									xtype : "hidden",
									name : "contractBorrow.project.id",
									id : "contractBorrow.project.id"
								}]
					}, {
						xtype : 'container',
						layout : 'column',
						height : 25,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '借用期限：',
									columnWidth : .15
								}, {
									xtype : 'textfield',
									name : 'contractBorrow.borrowLimit',
									id : 'borrowLimit',
									columnWidth : .3,
									allowBlank : false
								}, {
									text : '拟归还日期：',
									style : 'margin-left:10px;',
									columnWidth : .15
								}, {
									xtype : 'datefield',
									name : 'contractBorrow.preReturnDate',
									id : 'preReturnDate',
									allowBlank : false,
									columnWidth : .3,
									format : 'Y-m-d'
								}]
					}, {
						xtype : 'container',
						layout : 'column',
						height : 25,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '合同名称及描述：',
									columnWidth : .15
								}, {
									xtype : 'textfield',
									name : 'contractBorrowContractName',
									id : 'contractBorrowContractName',
									allowBlank : false,
									emptyText : '请选择合同',
									columnWidth : .75,
									listeners : {
										'focus' : function() {
											new ContractSelector(function(id, contractNo, contractAmount, contractTotal) {
												Ext.getCmp("contractBorrow.contract.id").setValue(id);
												Ext.getCmp("contractBorrowContractName").setValue(contractTotal);
											}, true).show();
										}
									}
								}, {
									xtype : 'hidden',
									name : 'contractBorrow.contract.id',
									id : 'contractBorrow.contract.id'
								}]
					}, {
						xtype : 'container',
						layout : 'column',
						height : 80,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '申请借用原因：',
									columnWidth : .15
								}, {
									xtype : 'textarea',
									name : 'contractBorrow.borrowReason',
									id : 'borrowReason',
									allowBlank : false,
									columnWidth : .75
								}]
					}, {
						xtype : 'container',
						layout : 'column',
						height : 80,
						defaults : {
							xtype : 'label',
							style : {
								margin : '0px 0px 3px 0px'
							}
						},
						items : [{
									text : '备注：',
									columnWidth : .15
								}, {
									xtype : 'textarea',
									name : 'contractBorrow.remark',
									id : 'remark',
									columnWidth : .75
								}]
					}]
		});
		//加载表单对应的数据	
		this.initData();
		//初始化功能按钮
		this.buttons = [{
					text : '保存',
					iconCls : 'btn-save',
					handler : this.save.createCallback(this.formPanel, this)
				}, {
					text : '重置',
					iconCls : 'btn-reset',
					handler : this.reset.createCallback(this.formPanel)
				}, {
					text : '取消',
					iconCls : 'btn-cancel',
					handler : this.cancel.createCallback(this)
				}];
	},//end of the initcomponents
	/**
	 * 初始化数据
	 * 
	 * @param {}
	 *            formPanel
	 */
	initData : function() {
		//加载表单对应的数据	
		if (this.id != null && this.id != 'undefined') {
			this.formPanel.getForm().load({
				deferredRender : false,
				url : __ctxPath + '/admin/getContractBorrow.do?id=' + this.id,
				waitMsg : '正在载入数据...',
				success : function(form, action) {
					var jsonData = Ext.util.JSON.decode(action.response.responseText);
					var res = jsonData.data;
					if (!Ext.isEmpty(res.dept)) {
						Ext.getCmp("contractBorrowDeptName").setValue(res.dept.depName);
						Ext.getCmp("contractBorrowDeptName").originalValue = res.dept.depName;
						Ext.getCmp("contractBorrow.dept.depId").setValue(res.dept.depId);
						Ext.getCmp("contractBorrow.dept.depId").originalValue = res.dept.depId;
					}
					if (res.proNeed == '是') {
						Ext.getCmp("contractBorrowProName").enable();
						Ext.getCmp("contractBorrowProName").allowBlank = false;
					} else {
						Ext.getCmp("contractBorrowProName").disable();
						Ext.getCmp("contractBorrowProName").allowBlank = true;
					}
					if (!Ext.isEmpty(res.applyUser)) {
						Ext.getCmp("contractBorrowApplyUserName").setValue(res.applyUser.fullname);
						Ext.getCmp("contractBorrowApplyUserName").originalValue = res.applyUser.fullname;
						Ext.getCmp("contractBorrow.applyUser.userId").setValue(res.applyUser.userId);
						Ext.getCmp("contractBorrow.applyUser.userId").originalValue = res.applyUser.userId;
					}
					if (!Ext.isEmpty(res.project)) {
						Ext.getCmp("contractBorrowProName").setValue(res.project.proName);
						Ext.getCmp("contractBorrowProName").originalValue = res.project.proName;
						Ext.getCmp("contractBorrow.project.id").setValue(res.project.id);
						Ext.getCmp("contractBorrow.project.id").originalValue = res.project.id;
					}
					if (!Ext.isEmpty(res.contract)) {
						Ext.getCmp("contractBorrowContractName").setValue("合同编号：" + res.contract.contractNo + ";合同金额：" + res.contract.contractAmount);
						Ext.getCmp("contractBorrowContractName").originalValue = "合同编号：" + res.contract.contractNo + ";合同金额：" + res.contract.contractAmount;
						Ext.getCmp("contractBorrow.contract.id").setValue(res.contract.id);
						Ext.getCmp("contractBorrow.contract.id").originalValue = res.contract.id;
					}
					//Ext.getCmp("").originalValue=
				},
				failure : function(form, action) {
				}
			});
		}
	},
	/**
	 * 重置
	 * 
	 * @param {}
	 *            formPanel
	 */
	reset : function(formPanel) {
		formPanel.getForm().reset();
	},
	/**
	 * 取消
	 * 
	 * @param {}
	 *            window
	 */
	cancel : function(window) {
		window.close();
	},
	/**
	 * 保存记录
	 */
	save : function(formPanel, window) {
		if (formPanel.getForm().isValid()) {
			formPanel.getForm().submit({
				method : 'POST',
				waitMsg : '正在提交数据...',
				success : function(fp, action) {
					Ext.ux.Toast.msg('操作信息', '成功保存信息！');
					var gridPanel = Ext.getCmp('ContractBorrowGrid');
					if (gridPanel != null) {
						gridPanel.getStore().reload();
					}
					window.close();
				},
				failure : function(fp, action) {
					Ext.MessageBox.show({
						title : '操作信息',
						msg : '信息保存出错，请联系管理员！',
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR
					});
					window.close();
				}
			});
		}
	}//end of save

});